// 获取应用实例
const app = getApp()
var qqmapsdk = app.globalData.qqmapsdk;
console.log(qqmapsdk)
Page({
  data: {
    cityName:'',
    type: ['热映', '待映', '经典'],
    cid: 1,
    movielist: [],
    pageno: 1, //保存当前的页面
  },

  tapnav(event) {
    let id = event.target.dataset.id;
    this.setData({
      cid: id,
      pageno: 1
    })
    // 打住,先去缓存找找,有没有缓存过, 有则直接用 
    wx.getStorage({
      key: id + '', // key需要字符串类型
      success: data => {
        this.setData({
          movielist: data.data
        });
      },
      fail: err => {
        // 发请求
        this.loadData(id, 0).then((movies) => {
          this.setData({
            movielist: movies
          })
          // 把movies列表存入缓存
          wx.setStorage({
            key: id + '', // wx要求 可以必须是字符串  所以拼上空字符串
            data: movies // 把第一页存入缓存
          })
        })
      }
    })

  },

  /**
   * 发送 请求加载电影列表
   * @param {*} cid 电影类别id
   * @param {*} offset 查询起始条目的下标索引
   * @returns Promise对象
   */
  loadData(cid, offset) {
    return new Promise((resolve, rejects) => {
      wx.showLoading({
        title: '正在加载...',
      })
      // 发请求
      wx.request({
        url: 'https://api.tedu.cn/index.php',
        method: 'GET',
        data: {
          cid: cid,
          offset: offset
        },
        success: (result) => {
          // result.data就是返回回来的电影列表
          // 把result.data交给loadData的调用者
          resolve(result.data)
          // 把等待框隐藏
          wx.hideLoading()
        }
      })
    })
  },

  /** 加载当前位置 */
  loadLocation() {
    qqmapsdk.reverseGeocoder({
      success:res=>{
        let city = res.result.address_component.city
        this.setData({
          cityName:city
        })
        getApp().globalData.selectedCity = city
      }
    })
  },

  /** 初始化时自动调用 */
  onLoad() {
    // 加载首页电影列表 热映类别下的第一页数据
    let cid = 1;
    let offset = 0;
    // let movies=this.loadData(cid,offset);
    /** 上述代码无法实现
     * this.loadData() 方法内容需要发送请求(异步)
     */

    this.loadData(cid, offset).then((movies) => {
      this.setData({
        movielist: movies
      })
    });

    // 加载当前位置
    this.loadLocation();

  },

  /** 当页面滚动触底后执行
   * 触底的判断, 与onReachBottomDistance配置有关
   */
  onReachBottom() {
    // 让data中的pageno变量++
    this.data.pageno++;
    // 整理发请求需要的两个参数 cid page
    let cid = this.data.cid;
    let offset = (this.data.pageno - 1) * 20
    // 发请求
    this.loadData(cid, offset).then((movies) => {
      let list = [...this.data.movielist, ...movies]
      this.setData({
        movielist: list
      })
    })
  },

  onPullDownRefresh() {
    // 加载当前类别下的第一页数据
    this.loadData(this.data.cid, 0).then(movies => {
      // 更新列表
      this.setData({
        movielist: movies
      })
      // 处理缓存
      wx.setStorage({
        data: movies,
        key: this.data.cid + '',
      })
      // 手动控制取消下拉刷新
      wx.stopPullDownRefresh()
    })
  },
  tapChooseCity(){
    wx.navigateTo({
      url: `/pages/citylist/citylist?ctname=${this.data.cityName}`,
      events:{
        acceptCityName:data=>{
          // this.cityname = data
          this.setData({
            cityName:data
          })
        }
      }
    })
  },
  onShow(){
    this.setData({
      cityName:getApp().globalData.selectedCity
    })
  }


})